
Introduction
docuRob® Workflow platform was created based on many years of research and development work, the starting point of which was the OfficeObjects® system software and the results of the Object Management Group standardization work in the field of BPMN 2.02 notation. An additional important starting element for work on the new platform architecture was the implementation of the Topic Maps model (ISO 23250) used to model the semantic resources of the modeled processes.
The result, which is schematically presented in Figure 1, is an intelligent platform for modeling and managing business processes, based on technical solutions such as:
- Graphical process model of to the process execution history compliant with BPMN 2.02 notation.
- An open information model covering process data and integration tools based on API (Rest, SOAP) and query languages (SQL, XPath) enabling the creation of application domain-specific functions extended with data from integrated IT systems.
- Internal model of process data management based on BPQL (Business Process Query Language) BPQL
- Representation of the process model in the WfMC (Workflow Management Coalition) notation supporting the export and import functions of process models.
- A subsystem for representing process ontologies, enabling direct access to semantic resources (Topic Maps) used by process instances.
The process information model includes data, both internal and external, which, as the execution context of the process instance, allow for controlling its execution based on the results of evaluation of the process execution rules implemented by BPQL comprising expressions and functions. The open set of functions allows users of the system to flexibly and easily extend their set. BPQL functions are implemented in the Java programming language and made available as part of the metadata resources of the docuRob® WorkFlow platform in accordance with the DSL (Domain-specific language) [DSL] (https://en.wikipedia.org/wiki/Domain-specific_language ) specification.
Data typically defined during process modeling include types such as global variables placed in the process data container, local variables, and input/output variables. As well as process parameters. Electronic Forms, used as a graphical user interface, are an additional source of input parameters and a recipient of output parameters. Local variables appear within BPQL expression blocks and are not available after their execution.
BPQL rules use process data by referring to both their current values and to the values contained in the processing history of the process instance. Within BPQL expressions, you can also use references to external data and semantic resources exposed within process ontology objects.
The API (application program interface) of the docuRob®WorkFlow platform allows one to retrieve any external data from IT systems that use the processes managed within an integrated process environment.
In addition to the coordination function that allows for the automation of tasks and resource allocation, the docuRob®WorkFlow system is used in the environment of existing IT systems as an integration platform.

Figure 1. Information model of the docuRob®WorkFlow process
Conceptual data model of the process ontology
The process ontology is built based on the Topic Maps standard*.* A topic map is a set of knowledge elements corresponding to objects. Figure 2 presents the conceptual model of the process ontology.
A single object is represented as a topic according to the Topic Maps notation*.* A topic is described by a set of names, attributes, topic classes, identifiers, and relationships with other topics.
The set of topics included in the topic map is divided into subsets of topics belonging to a specific class. If a topic P belongs to class K, we say that the topic P is an instance of class K. The terminology also often used may be as follows: the topic P is of type K. Topic maps also allow for class inheritance. If class X inherits from class Y, then the topic belonging to class X has the features of both classes X and Y.
The organization within which the process operates is represented by the Organization class*.* The organization consists of organization units that can create any organizational structure.
Performers of manual tasks in the process or recipients of notifications generated by the process or process initiators are embedded in the organization's structure or are external participants of the workflow.
An employee of the organization that owns the process has a defined system account represented by the Person class*,* with which the Employee class is associated, representing relationships relevant from the point of view of the user's position in the organization.
Figure 2. Class diagram of the conceptual model of the process ontology
One person can work in different organization units at different positions, so one user account (Person) can be associated with many Employees. An Employee must be associated with one person, position and one organization unit.
A Workflow User can also be an external entity appearing in the diagram as the External Entity Account class*.*
Figure 3 shows an example employee Brown James (Specialist) / Dept A. He is associated with the user account Brown James and is employed as a Specialist in organization unit Department A.

Figure 3. Sample Employee Details
In addition to being employed in a position in an organization unit, an employee may also fulfill various roles in the organization unit*.* Examples of employee roles in a unit may be: Accepting invoices, Approving leaves, etc.
On the one hand, there is the organizational structure of the company (connections of units), on the other hand, it is also possible to create working groups.
A working group is established for a fixed or indefinite period of time to perform a specific task. Employees belonging to a work group may have different roles within it. Examples of employee roles in a work group may be: Author, Reviewer, etc.
In addition to roles, there are also competencies in the system. The term role refers to the function that an employee performs in a specific context, while the term competency refers to the abilities or skills of a person that affect the effective performance of tasks. In essence, a role says what you do, and competency says how efficiently you do it.
Competencies are assigned in the system to a Person (user account). Examples of competencies include: knowledge of Spanish, knowledge of the European Union's sustainable development policies, etc.
Creating a working relationship between employees is useful and can be utilized in references to specific employees in the process, e.g. the next task should be performed by the supervisor of the current task participant, notification of a delay should reach the supervisor of the case handler, etc.
Employees can be linked to each other by Substitution relationships. An employee can be substituted by another employee and can substitute yet another employee.
Ontology Topic Map Navigator
Topic Maps Navigator is a clear and flexible tool for presenting the process ontology. Figure 4 shows a general view of the Topic Map Navigator allowing for browsing and editing topics and associations.

Figure 4. Topic Map Navigator Overview
On the left hand side of the drawing is the Navigator menu, on the right hand side is the work area, which displays lists, hierarchies, or details of topics. The topic map contains many topics that create various relationships between each other.
Topic sets are presented as lists or trees. An element of a list or a tree is a topic, visible as a link with a specific name. Clicking on a link displays information about the topic. Relations to other topics are visible as links. The user can therefore navigate the entire map using the relationships between topics.
The Main Menu contains two submenus: Organizational Structure and Process Modelling and Design.
The following items are displayed within the Organizational Structure menu*:*
- Organizational Structure – displays the organizational structure tree
- Organization units – displays a list of organization units
- Persons – displays a list of people
- Employees – displays a list of employees
- Superior-subordinate structure – displays the hierarchy of reporting dependencies between employees
- Root node of the supervisor-subordinate hierarchy – displays the CEO node of the hierarchy
- Employee positions – displays the employee position dictionary (list of positions)
- Competencies – displays a list of defined competencies
- Workgroups – displays a list of defined workgroups
- Roles in workgroup - displays a dictionary of employee roles in the context of workgroups
- Roles in organization unit – displays a dictionary of employee roles in the context of organization units
Figure 5 shows an example of a simple hierarchy representing the organizational structure of the ABC Company.
Definition of organizational structure

Figure 5. An example of the organizational structure
You can switch the display options in the area above the organizational structure by selecting the appropriate function button. Figure 6 presents the complete organizational structure.

Figure 6. Organizational structure with expanded nodes
Selecting and clicking an organizational structure node displays a window with detailed information about the object represented by the node, which may be an organization unit or an employee.
Figure 7 shows the details of the Department B topic*,* which is an instance of the Organization unit class*.*

Figure 7. Details of the topic Department B
The window with detailed information about the organization unit provides the functionality for editing information, modifying the unit’s connections with parent and child units, as well as with the organization, and the unit's connections with employees.
Figure 8 presents a list of topics of the Organization unit class*.*

Figure 8. List of organization units
Expanding the organizational structure involves creating organization units and linking them together. To add a new organization unit, click the Add button*,* fill in the mandatory fields, i.e. Full name and Short name, and then click the Save button (Figure 9).

Figure 9. Creating the topic of the type Organization unit
The newly created unit will appear on the list of organization units. Clicking on its name displays the details of the topic along with a context menu that allows one to link the unit to other units or an organization. The newly added Department C unit is to be subordinate to the Executive Management unit*,* so it will be linked to it. To do this, click the Parent organization unit in the context menu*,* select the Add button in the displayed window (Figure 10), and then in the new Organization units association -> Add window*,* select the unit in the Parent organization unit field and click the Create button (Figure 11).
If you want the newly added organization unit to be at the top of the hierarchy, select Superior organization from the context menu to link it to an organization.

Figure 10. Adding a relationship between an organization unit and a parent unit

Figure 11. Creating a relationship between an organization unit and a parent unit
In the next step, we will introduce a change in the organizational structure, which means that Department B will be a subordinate unit to the Department C. An organization unit can only have one parent unit or organization. Therefore, first deactivate the relationship between Department B and the superior organization unit (red arrow in the row containing the superior organization unit - Figure 12) by confirming the deactivation with the Yes button*,* and then add the relationship between this organization unit and the parent organization unit *(*select Parent organization unit from the context menu, click Add, then select the appropriate unit from the dictionary and click Create - Figure 13).

Figure 12. Deactivation of the unit's relationship with the superior organization unit

Figure 13. Creating a relationship between an organization unit and a parent unit
Figure 14 presents the organizational structure changed as a result of the above actions.

Figure 14. Example of organizational structure after changes
Definition of process users
Adding new users, employees of the organization, consists in creating *a Person (*topic of type Person) and *an Employee (*topic of type Employee) associated with it. To add a new Person, select Persons from the Navigator menu, and then click the Add button located under the displayed list of people (Figure 15).

Figure 15. Adding a new Person
In the displayed window for creating a topic of type Person, complete the following required fields marked with *:
- First name
- Surname
- Password - the password can be entered manually or generated automatically using a password generator
- User account – i.e. login. User account cannot contain spaces. Allowed characters: A...Z a...z 0...9 _ -

Figure 16. Creating the topic of type Person
After clicking the Save button*,* the following fields are automatically filled: ID, which stores the numerical identifier of the topic and the Public System Identifier (PSI), and the newly created person appears on the list of people. Clicking on their name displays the topic details along with its context menu and icons that allow you to modify or deactivate the topic (Figure 17).

Figure 17. Details of an example Person topic
There are 3 icons in the upper right corner of the screen. Clicking the Deactivate icon deactivates the displayed topic. An inactive person cannot log into the system and is not visible on the list of people. To display them, you need to change the people display parameters - to Show Inactive. To restore a person to active, click the Activate icon
, which will be displayed in the upper right corner of the person details screen (in place of the Modify and Deactivate icons).
Clicking the Modify icon allows you to edit the person's details.
The above rules for activating, deactivating and modifying topics apply to all topics for which the administrator has appropriate permissions in the Topic Map Navigator.
After creating a Person, you must define the Employee and optionally the competencies for them. To create an Employee for a given person, select the Employees item from the context menu of that person, and then click the Add button*.* In the window for creating a topic of the Employee type, fill in the mandatory fields (Figure 18):
- in the Identifier field*,* enter the unique employee identifier,
- select Yes in the Default Relationship field*,*
- select an employee position in the Position field*,*
- select an organization unit in the Organization unit field*.*
The Person related to the employee field is automatically filled in by the system.
Finally, click the Save button*.*

Figure 18. Creating an Employee topic
Figure 19 shows the organizational structure tree after the above changes have been introduced.

Figure 19. Changed organizational structure with employees
Employees are linked to each other by a supervisor-subordinate relationship. In order to map such relationships in the system, select the Supervisor or Subordinate from the context menu.
We will create such a relationship for the CEO by selecting the Subordinate from context menu and then clicking the Add button*.* In the window for creating a relationship between a supervisor and a subordinate (Figure 20), select the employee from the dictionary in the Subordinate field*,* and then click Create.

Figure 20. Creating a relationship between superior and subordinate
In this way, you can add supervisor-subordinate relationships from the context of each employee, keeping in mind that an employee can have only one supervisor but many subordinates.
Figure 21 shows an example supervisor-subordinate hierarchy.

Figure 21. Supervisor-subordinate hierarchy
To create a new competency, select Competencies from the Navigator menu and click the Add button in the work area (Figure 22).

Figure 22. Adding competencies
In the window for creating a topic of type Competency (Figure 23), fill in the mandatory fields: Name and Identifier, optionally you can fill in the Description field*,* and then click the Save button*.*
Please note that identifiers should not contain spaces, special characters. Allowed characters are: A...Z a...z 0...9 _ -.

Figure 23. Creating a topic of type Competency
After saving a competency, it appears on the competency list. Clicking on its name displays a window with details and a context menu (Figure 24).

Figure 24. Details of competencies Knowledge of Spanish
To associate a competency with a person, select Persons with competencies from the context menu, then select the person and click the Create button (Figure 25).

Figure 25. Assigning competencies to a person
The person for whom the association was created appears in the list of people with a given competency (Figure 26).

Figure 26. List of people with a specific competency
Definition of workgroups
Workgroups can be established to perform specific tasks/projects. To create a new workgroup, select Workgroups from the Navigator menu and click the Add button in the workspace (Figure 27).

Figure 27. Adding a workgroup
In the Workgroup creation window (Figure 28), fill in the mandatory fields: Name and Identifier, optionally you can fill in the Description field*,* the start and end dates of the group's work or check the box indicating that the group is established for an indefinite period, and then click the Save button*.*

Figure 28. Creating a topic of type Workgroup
Definition of process user roles
Employees can have different roles within a workgroup. To create appropriate roles for a workgroup, select Roles in workgroup from the Navigator menu and click the Add button (Figure 29).

Figure 29. Adding an employee role in a workgroup
In the window for creating a topic of type Role in workgroup (Figure 30), fill in the mandatory fields: Name and Identifier, optionally you can fill in the Description field*,* and then click the Save button*.*

Figure 30. Creating a topic of the type Role in workgroup
Assigning an employee in the appropriate role to a specific workgroup can be done both from the selected employee's side and from the selected workgroup's side. From the workgroup's side: after displaying the workgroup details, select Employees from the context menu and click the Add button in the work area (Figure 31).

Figure 31. Adding employees to a workgroup
In the window for creating an employee-workgroup association (Figure 32), complete the mandatory fields, i.e. select the employee in the Employee field and the role in the Role in workgroup field*,* and then click the Create button*.*

Figure 32. Creating a relationship between an employee and a work group
In addition to workgroup roles, employees can also have different roles within an organization unit*.* To create roles for an organization unit, select Roles in organization unit from the Navigator menu and click the Add button in the work area (Figure 33).

Figure 33. Adding an employee role in an organization unit
In the window for creating a topic of type Role in organization unit (Figure 34), fill in the mandatory fields: Name and Identifier, optionally you can fill in the Description field*,* and then click the Save button*.*

Figure 34. Creating the topic of type Role in organization unit
To assign a role in an organization unit to an employee, select Roles in organization unit from the context menu of the selected employee and click the Add button in the workspace (Figure 35).

Figure 35. Assigning a role to an employee in an organization unit
In the window for creating an employee relationship with a role in an organization unit (Figure 36), select the role in the Role in organization unit field*,* and then click the Create button*.*

Figure 36. Creating a relationship between an employee and a role in an organization unit
Definition of employee substitution
Employees can be substituted or substitute other employees. To assign a substitution to an employee, select Substituting or Substituted from the employee's context menu*,* and then click the Add button in the work area (Figure 37).

Figure 37. Adding a substituting employee
In the window for creating a substitution, select the substituting employee or the substituted employee from the dictionary and click the Create button (Figure 38).

Figure 38. Creating a substitution